package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学生课程对象 student_course_enrollments
 * 
 * @author ruoyi
 * @date 2025-08-15
 */
public class StudentCourseEnrollments extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 选课ID */
    private Long enrollmentId;

    /** 学生ID */
    @Excel(name = "学生ID")
    private Long studentId;

    /** 开课ID */
    @Excel(name = "开课ID")
    private Long offeringId;

    /** 选课时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "选课时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enrollmentTime;

    /** 学习状态 */
    @Excel(name = "学习状态")
    private String learningStatus;

    /** 总体进度百分比 */
    @Excel(name = "总体进度百分比")
    private BigDecimal totalProgress;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setEnrollmentId(Long enrollmentId) 
    {
        this.enrollmentId = enrollmentId;
    }

    public Long getEnrollmentId() 
    {
        return enrollmentId;
    }

    public void setStudentId(Long studentId) 
    {
        this.studentId = studentId;
    }

    public Long getStudentId() 
    {
        return studentId;
    }

    public void setOfferingId(Long offeringId) 
    {
        this.offeringId = offeringId;
    }

    public Long getOfferingId() 
    {
        return offeringId;
    }

    public void setEnrollmentTime(Date enrollmentTime) 
    {
        this.enrollmentTime = enrollmentTime;
    }

    public Date getEnrollmentTime() 
    {
        return enrollmentTime;
    }

    public void setLearningStatus(String learningStatus) 
    {
        this.learningStatus = learningStatus;
    }

    public String getLearningStatus() 
    {
        return learningStatus;
    }

    public void setTotalProgress(BigDecimal totalProgress) 
    {
        this.totalProgress = totalProgress;
    }

    public BigDecimal getTotalProgress() 
    {
        return totalProgress;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("enrollmentId", getEnrollmentId())
            .append("studentId", getStudentId())
            .append("offeringId", getOfferingId())
            .append("enrollmentTime", getEnrollmentTime())
            .append("learningStatus", getLearningStatus())
            .append("totalProgress", getTotalProgress())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
